﻿using System;
using System.Collections.Generic;

//XNA
using Microsoft.Xna.Framework;


namespace JumpFleetGameLib.Objects.Ships
{
    public abstract class ShipFactory
    {

        #region Good Ships
        /// <summary>
        /// This is the Player SHip
        /// </summary>
        /// <returns>return a base Object but the Warehouse will create an instance of a BattleCruiser "Upcasting"</returns>
        public abstract BaseShip CreateBattleCruiserFleet();

        /// <summary>
        /// This is a Mining Ship "Player AI"
        /// </summary>
        /// <returns></returns>
        public abstract BaseShip CreateMiningShip();

        /// <summary>
        /// This is the Repair ship "Player AI"
        /// </summary>
        /// <returns></returns>
        public abstract BaseShip CreateRepairShip();

        /// <summary>
        /// Assult Ship "Player AI"
        /// </summary>
        /// <returns></returns>
        public abstract BaseShip CreateAssultShip();

        /// <summary>
        /// This is a mini fighter that is created from the Player ship for tanking "AI"
        /// </summary>
        /// <returns></returns>
        public abstract BaseShip CreateSquadFighter();
        #endregion


        #region Enemy Ships
        /// <summary>
        /// This is an Enemy Mother Ship "AI"
        /// </summary>
        /// <returns></returns>
        public abstract BaseShip CreateMotherShip();

        /// <summary>
        /// This is an Enemy Fighter "AI"
        /// </summary>
        /// <returns></returns>
        public abstract BaseShip CreateEnemyFighter(); 
        #endregion


    }
}
